#include <iostream>

/**
 * 结构体属于用户自定义的数据类型，允许用户存储不同的数据类型
 */
struct Student3 {
    std::string name;
    int age{};
    int score{};
};

void printStudent(Student3 student3);

void printStudent(const Student3 *student3);


int main() {
    Student3 s1;
    s1.name = "值传递";
    printStudent(s1);

    s1.name = "地址传递";
    printStudent(&s1);

    std::cout << s1.age << std::endl;
}

// 值传递
void printStudent(Student3 stu) {
    stu.age = 100; // 值传递
    std::cout << stu.name << std::endl;
}

// 地址传递
// const 不想让你修改值里面的值, 就是里面的数据只读
void printStudent(const Student3 *stu) {
//    stu->age = 200;
    std::cout << stu->name << std::endl;
}